home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / bccmouse.zip / MOUSE.H < prev    next >
C/C++ Source or Header  |  1991-10-27  |  3KB  |  115 lines

  1. /**********************************************************************
  2.  *  
  3.  *  NAME:           mouse.h
  4.  *  
  5.  *  DESCRIPTION:    C++ mouse handler
  6.  *  
  7.  *  M O D I F I C A T I O N   H I S T O R Y
  8.  *
  9.  *  when        who                 what
  10.  *  -------------------------------------------------------------------
  11.  *  12/15/90    J. Alan Eldridge    created
  12.  *  
  13.  *********************************************************************/
  14.  
  15. #ifndef __MOUSE_H
  16. #define __MOUSE_H
  17.  
  18. #ifndef __cplusplus
  19. #error  mouse.h needs a C++ compiler
  20. #endif
  21.  
  22. #if defined(__TURBOC__)
  23.  
  24. struct  MouEvent {
  25.     int     event;
  26.     int     buttons;
  27.     int     vertpos;
  28.     int     horzpos;
  29.     int     kbshift;
  30.     long    ticks;
  31. };
  32.  
  33. void    mou_seteventhandler(int mask, 
  34.             void cdecl huge _saveregs (*func)());
  35. int     mou_swapeventhandler(int mask, 
  36.             void cdecl huge _saveregs (*newhandler)(),
  37.             void cdecl huge _saveregs (**oldhandler)());
  38.  
  39. //  bits for event masks
  40.  
  41. enum {
  42.     //  mouse events
  43.     MouEvMove           =   0x01,
  44.     MouEvLeftDown       =   0x02,
  45.     MouEvLeftUp         =   0x04,
  46.     MouEvRightDown      =   0x08,
  47.     MouEvRightUp        =   0x10,
  48.     MouEvCenterDown     =   0x20,
  49.     MouEvCenterUp       =   0x40,
  50.     MouEvAllEvents      =   0x7F,
  51.     //  shift key events
  52.     MouKInsert          =   0x0080,
  53.     MouKCapsLk          =   0x0040,
  54.     MouKNumLk           =   0x0020,
  55.     MouKScrlLk          =   0x0010,
  56.     MouKAltDn           =   0x0008,
  57.     MouKCtlDn           =   0x0004,
  58.     MouKLShDn           =   0x0002,
  59.     MouKRShDn           =   0x0001,
  60.     MouKInsDn           =   0x8000,
  61.     MouKCapsLkDn        =   0x4000,
  62.     MouKNumLkDn         =   0x2000,
  63.     MouKScrlLkDn        =   0x1000,
  64.     MouKKBHold          =   0x0800
  65. };
  66.  
  67. //  driver functions
  68. int     mou_resetmouse();
  69. void    mou_showptr();
  70. void    mou_hideptr();
  71. inline void mou_refreshptr()    //  ugly, but works
  72.     { mou_hideptr(); mou_showptr(); }
  73. void    mou_setsoftptr(int andmask = 0x77ff, int xormask = 0x7700);
  74. void    mou_sethardptr(int start = 0, int end = 7);
  75. int     mou_savestatesize();
  76. void    mou_savestate(unsigned char *buf);
  77. void    mou_restorestate(unsigned char *buf);
  78. int     mou_resetdriver();
  79. void    interrupt (*mou_disabledriver())();
  80. void    mou_enabledriver();    
  81.     
  82. //  (very) general status
  83. int     mou_exists();
  84. int     mou_buttons();
  85.  
  86. //  button info
  87. int     mou_buttonpress(int &n, int &v, int &h);
  88. int     mou_buttonrelease(int &n, int &v, int &h);
  89.  
  90. //  pointer settings
  91. void    mou_sethlimits(int minval, int maxval);
  92. void    mou_setvlimits(int minval, int maxval);
  93. void    mou_setposition(int v, int h);
  94. void    mou_setexclusionarea(int yul, int xul, int ylr, int xlr);
  95.  
  96. //  interrupt handler control
  97. int     mou_seteventmask(int newmask = MouEvAllEvents);
  98. int     mou_getevent(MouEvent &ev);
  99. void    mou_flushevents();
  100. int     mou_seteventqsize(int newsize = 0);
  101.  
  102. //  keyboard shift state
  103. extern volatile int far *mou_pkbshift;
  104. inline int mou_getkbshift()
  105.     { return *mou_pkbshift; }
  106.  
  107. //  high level interrupt handler control
  108. int     mou_setusermask(int newmask = MouEvAllEvents);
  109. void    mou_setuserfunc(int (*userfunc)(MouEvent &) = 0);
  110.  
  111. #endif  //  __TURBOC__
  112.  
  113. #endif  //  __MOUSE_H
  114.  
  115.